

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="Description" content="scikit-learn: machine learning in Python">

  
  <title>Version 0.16.1 &mdash; scikit-learn 0.22 documentation</title>
  
  <link rel="canonical" href="http://scikit-learn.org/stable/whats_new/v0.16.html" />

  
  <link rel="shortcut icon" href="../_static/favicon.ico"/>
  

  <link rel="stylesheet" href="../_static/css/vendor/bootstrap.min.css" type="text/css" />
  <link rel="stylesheet" href="../_static/gallery.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script> 
</head>
<body>
<nav id="navbar" class="sk-docs-navbar navbar navbar-expand-md navbar-light bg-light py-0">
  <div class="container-fluid sk-docs-container px-0">
      <a class="navbar-brand py-0" href="../index.html">
        <img
          class="sk-brand-img"
          src="../_static/scikit-learn-logo-small.png"
          alt="logo"/>
      </a>
    <button
      id="sk-navbar-toggler"
      class="navbar-toggler"
      type="button"
      data-toggle="collapse"
      data-target="#navbarSupportedContent"
      aria-controls="navbarSupportedContent"
      aria-expanded="false"
      aria-label="Toggle navigation"
    >
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="sk-navbar-collapse collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav mr-auto">
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../install.html">Install</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../user_guide.html">User Guide</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../modules/classes.html">API</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link" href="../auto_examples/index.html">Examples</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../getting_started.html">Getting Started</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../tutorial/index.html">Tutorial</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../glossary.html">Glossary</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../developers/index.html">Development</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../faq.html">FAQ</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../related_projects.html">Related packages</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../roadmap.html">Roadmap</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="../about.html">About us</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://github.com/scikit-learn/scikit-learn">GitHub</a>
        </li>
        <li class="nav-item">
          <a class="sk-nav-link nav-link nav-more-item-mobile-items" href="https://scikit-learn.org/dev/versions.html">Other Versions</a>
        </li>
        <li class="nav-item dropdown nav-more-item-dropdown">
          <a class="sk-nav-link nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">More</a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
              <a class="sk-nav-dropdown-item dropdown-item" href="../getting_started.html">Getting Started</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../tutorial/index.html">Tutorial</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../glossary.html">Glossary</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../developers/index.html">Development</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../faq.html">FAQ</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../related_projects.html">Related packages</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../roadmap.html">Roadmap</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="../about.html">About us</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="https://github.com/scikit-learn/scikit-learn">GitHub</a>
              <a class="sk-nav-dropdown-item dropdown-item" href="https://scikit-learn.org/dev/versions.html">Other Versions</a>
          </div>
        </li>
      </ul>
      <div id="searchbox" role="search">
          <div class="searchformwrapper">
          <form class="search" action="../search.html" method="get">
            <input class="sk-search-text-input" type="text" name="q" aria-labelledby="searchlabel" />
            <input class="sk-search-text-btn" type="submit" value="Go" />
          </form>
          </div>
      </div>
    </div>
  </div>
</nav>
<div class="d-flex" id="sk-doc-wrapper">
    <input type="checkbox" name="sk-toggle-checkbox" id="sk-toggle-checkbox">
    <label id="sk-sidemenu-toggle" class="sk-btn-toggle-toc btn sk-btn-primary" for="sk-toggle-checkbox">Toggle Menu</label>
    <div id="sk-sidebar-wrapper" class="border-right">
      <div class="sk-sidebar-toc-wrapper">
        <div class="sk-sidebar-toc-logo">
          <a href="../index.html">
            <img
              class="sk-brand-img"
              src="../_static/scikit-learn-logo-small.png"
              alt="logo"/>
          </a>
        </div>
        <div class="btn-group w-100 mb-2" role="group" aria-label="rellinks">
            <a href="v0.17.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Version 0.17.1">Prev</a><a href="../whats_new.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Release History">Up</a>
            <a href="v0.15.html" role="button" class="btn sk-btn-rellink py-1" sk-rellink-tooltip="Version 0.15.2">Next</a>
        </div>
        <div class="alert alert-danger p-1 mb-2" role="alert">
          <p class="text-center mb-0">
          <strong>scikit-learn 0.22</strong><br/>
          <a href="http://scikit-learn.org/dev/versions.html">Other versions</a>
          </p>
        </div>
        <div class="alert alert-warning p-1 mb-2" role="alert">
          <p class="text-center mb-0">
            Please <a class="font-weight-bold" href="../about.html#citing-scikit-learn"><string>cite us</string></a> if you use the software.
          </p>
        </div>
          <div class="sk-sidebar-toc">
            <ul>
<li><a class="reference internal" href="#">Version 0.16.1</a><ul>
<li><a class="reference internal" href="#changelog">Changelog</a><ul>
<li><a class="reference internal" href="#bug-fixes">Bug fixes</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#version-0-16">Version 0.16</a><ul>
<li><a class="reference internal" href="#highlights">Highlights</a></li>
<li><a class="reference internal" href="#id1">Changelog</a><ul>
<li><a class="reference internal" href="#new-features">New features</a></li>
<li><a class="reference internal" href="#enhancements">Enhancements</a></li>
<li><a class="reference internal" href="#documentation-improvements">Documentation improvements</a></li>
<li><a class="reference internal" href="#id2">Bug fixes</a></li>
</ul>
</li>
<li><a class="reference internal" href="#api-changes-summary">API changes summary</a></li>
<li><a class="reference internal" href="#code-contributors">Code Contributors</a></li>
</ul>
</li>
</ul>

          </div>
      </div>
    </div>
    <div id="sk-page-content-wrapper">
      <div class="sk-page-content container-fluid body px-md-3" role="main">
        
  <div class="section" id="version-0-16-1">
<span id="changes-0-16-1"></span><h1>Version 0.16.1<a class="headerlink" href="#version-0-16-1" title="Permalink to this headline">¶</a></h1>
<p><strong>April 14, 2015</strong></p>
<div class="section" id="changelog">
<h2>Changelog<a class="headerlink" href="#changelog" title="Permalink to this headline">¶</a></h2>
<div class="section" id="bug-fixes">
<h3>Bug fixes<a class="headerlink" href="#bug-fixes" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>Allow input data larger than <code class="docutils literal notranslate"><span class="pre">block_size</span></code> in
<a class="reference internal" href="../modules/generated/sklearn.covariance.LedoitWolf.html#sklearn.covariance.LedoitWolf" title="sklearn.covariance.LedoitWolf"><code class="xref py py-class docutils literal notranslate"><span class="pre">covariance.LedoitWolf</span></code></a> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Fix a bug in <a class="reference internal" href="../modules/generated/sklearn.isotonic.IsotonicRegression.html#sklearn.isotonic.IsotonicRegression" title="sklearn.isotonic.IsotonicRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">isotonic.IsotonicRegression</span></code></a> deduplication that
caused unstable result in <a class="reference internal" href="../modules/generated/sklearn.calibration.CalibratedClassifierCV.html#sklearn.calibration.CalibratedClassifierCV" title="sklearn.calibration.CalibratedClassifierCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">calibration.CalibratedClassifierCV</span></code></a> by
<a class="reference external" href="https://jmetzen.github.io/">Jan Hendrik Metzen</a>.</p></li>
<li><p>Fix sorting of labels in func:<code class="docutils literal notranslate"><span class="pre">preprocessing.label_binarize</span></code> by Michael Heilman.</p></li>
<li><p>Fix several stability and convergence issues in
<a class="reference internal" href="../modules/generated/sklearn.cross_decomposition.CCA.html#sklearn.cross_decomposition.CCA" title="sklearn.cross_decomposition.CCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">cross_decomposition.CCA</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.cross_decomposition.PLSCanonical.html#sklearn.cross_decomposition.PLSCanonical" title="sklearn.cross_decomposition.PLSCanonical"><code class="xref py py-class docutils literal notranslate"><span class="pre">cross_decomposition.PLSCanonical</span></code></a> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a></p></li>
<li><p>Fix a bug in <a class="reference internal" href="../modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans" title="sklearn.cluster.KMeans"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.KMeans</span></code></a> when <code class="docutils literal notranslate"><span class="pre">precompute_distances=False</span></code>
on fortran-ordered data.</p></li>
<li><p>Fix a speed regression in <a class="reference internal" href="../modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier" title="sklearn.ensemble.RandomForestClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.RandomForestClassifier</span></code></a>’s <code class="docutils literal notranslate"><span class="pre">predict</span></code>
and <code class="docutils literal notranslate"><span class="pre">predict_proba</span></code> by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Fix a regression where <code class="docutils literal notranslate"><span class="pre">utils.shuffle</span></code> converted lists and dataframes to arrays, by <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a></p></li>
</ul>
</div>
</div>
</div>
<div class="section" id="version-0-16">
<span id="changes-0-16"></span><h1>Version 0.16<a class="headerlink" href="#version-0-16" title="Permalink to this headline">¶</a></h1>
<p><strong>March 26, 2015</strong></p>
<div class="section" id="highlights">
<h2>Highlights<a class="headerlink" href="#highlights" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p>Speed improvements (notably in <a class="reference internal" href="../modules/generated/sklearn.cluster.DBSCAN.html#sklearn.cluster.DBSCAN" title="sklearn.cluster.DBSCAN"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.DBSCAN</span></code></a>), reduced memory
requirements, bug-fixes and better default settings.</p></li>
<li><p>Multinomial Logistic regression and a path algorithm in
<a class="reference internal" href="../modules/generated/sklearn.linear_model.LogisticRegressionCV.html#sklearn.linear_model.LogisticRegressionCV" title="sklearn.linear_model.LogisticRegressionCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LogisticRegressionCV</span></code></a>.</p></li>
<li><p>Out-of core learning of PCA via <a class="reference internal" href="../modules/generated/sklearn.decomposition.IncrementalPCA.html#sklearn.decomposition.IncrementalPCA" title="sklearn.decomposition.IncrementalPCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.IncrementalPCA</span></code></a>.</p></li>
<li><p>Probability callibration of classifiers using
<a class="reference internal" href="../modules/generated/sklearn.calibration.CalibratedClassifierCV.html#sklearn.calibration.CalibratedClassifierCV" title="sklearn.calibration.CalibratedClassifierCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">calibration.CalibratedClassifierCV</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.cluster.Birch.html#sklearn.cluster.Birch" title="sklearn.cluster.Birch"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.Birch</span></code></a> clustering method for large-scale datasets.</p></li>
<li><p>Scalable approximate nearest neighbors search with Locality-sensitive
hashing forests in <code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.LSHForest</span></code>.</p></li>
<li><p>Improved error messages and better validation when using malformed input data.</p></li>
<li><p>More robust integration with pandas dataframes.</p></li>
</ul>
</div>
<div class="section" id="id1">
<h2>Changelog<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
<div class="section" id="new-features">
<h3>New features<a class="headerlink" href="#new-features" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>The new <code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.LSHForest</span></code> implements locality-sensitive hashing
for approximate nearest neighbors search. By <a class="reference external" href="https://github.com/maheshakya">Maheshakya Wijewardena</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.svm.LinearSVR.html#sklearn.svm.LinearSVR" title="sklearn.svm.LinearSVR"><code class="xref py py-class docutils literal notranslate"><span class="pre">svm.LinearSVR</span></code></a>. This class uses the liblinear implementation
of Support Vector Regression which is much faster for large
sample sizes than <a class="reference internal" href="../modules/generated/sklearn.svm.SVR.html#sklearn.svm.SVR" title="sklearn.svm.SVR"><code class="xref py py-class docutils literal notranslate"><span class="pre">svm.SVR</span></code></a> with linear kernel. By
<a class="reference external" href="http://fa.bianp.net">Fabian Pedregosa</a> and Qiang Luo.</p></li>
<li><p>Incremental fit for <a class="reference internal" href="../modules/generated/sklearn.naive_bayes.GaussianNB.html#sklearn.naive_bayes.GaussianNB" title="sklearn.naive_bayes.GaussianNB"><code class="xref py py-class docutils literal notranslate"><span class="pre">GaussianNB</span></code></a>.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code> support to <a class="reference internal" href="../modules/generated/sklearn.dummy.DummyClassifier.html#sklearn.dummy.DummyClassifier" title="sklearn.dummy.DummyClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">dummy.DummyClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.dummy.DummyRegressor.html#sklearn.dummy.DummyRegressor" title="sklearn.dummy.DummyRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">dummy.DummyRegressor</span></code></a>. By <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Added the <a class="reference internal" href="../modules/generated/sklearn.metrics.label_ranking_average_precision_score.html#sklearn.metrics.label_ranking_average_precision_score" title="sklearn.metrics.label_ranking_average_precision_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.label_ranking_average_precision_score</span></code></a> metrics.
By <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Add the <a class="reference internal" href="../modules/generated/sklearn.metrics.coverage_error.html#sklearn.metrics.coverage_error" title="sklearn.metrics.coverage_error"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.coverage_error</span></code></a> metrics. By <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.linear_model.LogisticRegressionCV.html#sklearn.linear_model.LogisticRegressionCV" title="sklearn.linear_model.LogisticRegressionCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LogisticRegressionCV</span></code></a>. By
<a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>, <a class="reference external" href="http://fa.bianp.net">Fabian Pedregosa</a>, <a class="reference external" href="http://gael-varoquaux.info">Gael Varoquaux</a>
and <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">warm_start</span></code> constructor parameter to make it possible for any
trained forest model to grow additional trees incrementally. By
<a class="reference external" href="https://github.com/ldirer">Laurent Direr</a>.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code> support to <a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingClassifier.html#sklearn.ensemble.GradientBoostingClassifier" title="sklearn.ensemble.GradientBoostingClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.GradientBoostingClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.ensemble.GradientBoostingRegressor.html#sklearn.ensemble.GradientBoostingRegressor" title="sklearn.ensemble.GradientBoostingRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.GradientBoostingRegressor</span></code></a>. By <a class="reference external" href="https://sites.google.com/site/peterprettenhofer/">Peter Prettenhofer</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.decomposition.IncrementalPCA.html#sklearn.decomposition.IncrementalPCA" title="sklearn.decomposition.IncrementalPCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.IncrementalPCA</span></code></a>, an implementation of the PCA
algorithm that supports out-of-core learning with a <code class="docutils literal notranslate"><span class="pre">partial_fit</span></code>
method. By <a class="reference external" href="https://kastnerkyle.github.io/">Kyle Kastner</a>.</p></li>
<li><p>Averaged SGD for <a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier" title="sklearn.linear_model.SGDClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">SGDClassifier</span></code></a>
and <a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDRegressor.html#sklearn.linear_model.SGDRegressor" title="sklearn.linear_model.SGDRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">SGDRegressor</span></code></a> By
<a class="reference external" href="https://github.com/dsullivan7">Danny Sullivan</a>.</p></li>
<li><p>Added <code class="xref py py-func docutils literal notranslate"><span class="pre">cross_val_predict</span></code>
function which computes cross-validated estimates. By <a class="reference external" href="http://luispedro.org">Luis Pedro Coelho</a></p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.linear_model.TheilSenRegressor.html#sklearn.linear_model.TheilSenRegressor" title="sklearn.linear_model.TheilSenRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.TheilSenRegressor</span></code></a>, a robust
generalized-median-based estimator. By <a class="reference external" href="https://github.com/FlorianWilhelm">Florian Wilhelm</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.metrics.median_absolute_error.html#sklearn.metrics.median_absolute_error" title="sklearn.metrics.median_absolute_error"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.median_absolute_error</span></code></a>, a robust metric.
By <a class="reference external" href="http://gael-varoquaux.info">Gael Varoquaux</a> and <a class="reference external" href="https://github.com/FlorianWilhelm">Florian Wilhelm</a>.</p></li>
<li><p>Add <a class="reference internal" href="../modules/generated/sklearn.cluster.Birch.html#sklearn.cluster.Birch" title="sklearn.cluster.Birch"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.Birch</span></code></a>, an online clustering algorithm. By
<a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>, <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a> and <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Added shrinkage support to <a class="reference internal" href="../modules/generated/sklearn.discriminant_analysis.LinearDiscriminantAnalysis.html#sklearn.discriminant_analysis.LinearDiscriminantAnalysis" title="sklearn.discriminant_analysis.LinearDiscriminantAnalysis"><code class="xref py py-class docutils literal notranslate"><span class="pre">discriminant_analysis.LinearDiscriminantAnalysis</span></code></a>
using two new solvers. By <a class="reference external" href="https://github.com/cle1109">Clemens Brunner</a> and <a class="reference external" href="https://tnsre.embs.org/author/martinbillinger/">Martin Billinger</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.kernel_ridge.KernelRidge.html#sklearn.kernel_ridge.KernelRidge" title="sklearn.kernel_ridge.KernelRidge"><code class="xref py py-class docutils literal notranslate"><span class="pre">kernel_ridge.KernelRidge</span></code></a>, an implementation of
kernelized ridge regression.
By <a class="reference external" href="http://www.mblondel.org">Mathieu Blondel</a> and <a class="reference external" href="https://jmetzen.github.io/">Jan Hendrik Metzen</a>.</p></li>
<li><p>All solvers in <a class="reference internal" href="../modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge" title="sklearn.linear_model.Ridge"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Ridge</span></code></a> now support <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code>.
By <a class="reference external" href="http://www.mblondel.org">Mathieu Blondel</a>.</p></li>
<li><p>Added <code class="xref py py-class docutils literal notranslate"><span class="pre">cross_validation.PredefinedSplit</span></code> cross-validation
for fixed user-provided cross-validation folds.
By <a class="reference external" href="https://github.com/untom">Thomas Unterthiner</a>.</p></li>
<li><p>Added <a class="reference internal" href="../modules/generated/sklearn.calibration.CalibratedClassifierCV.html#sklearn.calibration.CalibratedClassifierCV" title="sklearn.calibration.CalibratedClassifierCV"><code class="xref py py-class docutils literal notranslate"><span class="pre">calibration.CalibratedClassifierCV</span></code></a>, an approach for
calibrating the predicted probabilities of a classifier.
By <a class="reference external" href="http://alexandre.gramfort.net">Alexandre Gramfort</a>, <a class="reference external" href="https://jmetzen.github.io/">Jan Hendrik Metzen</a>, <a class="reference external" href="http://www.mblondel.org">Mathieu Blondel</a>
and <a class="reference external" href="https://github.com/kegl">Balazs Kegl</a>.</p></li>
</ul>
</div>
<div class="section" id="enhancements">
<h3>Enhancements<a class="headerlink" href="#enhancements" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>Add option <code class="docutils literal notranslate"><span class="pre">return_distance</span></code> in <code class="xref py py-func docutils literal notranslate"><span class="pre">hierarchical.ward_tree</span></code>
to return distances between nodes for both structured and unstructured
versions of the algorithm. By <a class="reference external" href="http://www.mvdoc.me">Matteo Visconti di Oleggio Castello</a>.
The same option was added in <code class="xref py py-func docutils literal notranslate"><span class="pre">hierarchical.linkage_tree</span></code>.
By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a></p></li>
<li><p>Add support for sample weights in scorer objects.  Metrics with sample
weight support will automatically benefit from it. By <a class="reference external" href="https://github.com/ndawe">Noel Dawe</a> and
<a class="reference external" href="https://vene.ro/">Vlad Niculae</a>.</p></li>
<li><p>Added <code class="docutils literal notranslate"><span class="pre">newton-cg</span></code> and <code class="docutils literal notranslate"><span class="pre">lbfgs</span></code> solver support in
<a class="reference internal" href="../modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression" title="sklearn.linear_model.LogisticRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LogisticRegression</span></code></a>. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">selection=&quot;random&quot;</span></code> parameter to implement stochastic coordinate
descent for <a class="reference internal" href="../modules/generated/sklearn.linear_model.Lasso.html#sklearn.linear_model.Lasso" title="sklearn.linear_model.Lasso"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Lasso</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.linear_model.ElasticNet.html#sklearn.linear_model.ElasticNet" title="sklearn.linear_model.ElasticNet"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.ElasticNet</span></code></a>
and related. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code> parameter to
<a class="reference internal" href="../modules/generated/sklearn.metrics.jaccard_similarity_score.html#sklearn.metrics.jaccard_similarity_score" title="sklearn.metrics.jaccard_similarity_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.jaccard_similarity_score</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.metrics.log_loss.html#sklearn.metrics.log_loss" title="sklearn.metrics.log_loss"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.log_loss</span></code></a>.
By <a class="reference external" href="https://github.com/jatinshah">Jatin Shah</a>.</p></li>
<li><p>Support sparse multilabel indicator representation in
<a class="reference internal" href="../modules/generated/sklearn.preprocessing.LabelBinarizer.html#sklearn.preprocessing.LabelBinarizer" title="sklearn.preprocessing.LabelBinarizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">preprocessing.LabelBinarizer</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsRestClassifier.html#sklearn.multiclass.OneVsRestClassifier" title="sklearn.multiclass.OneVsRestClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OneVsRestClassifier</span></code></a> (by <a class="reference external" href="https://github.com/hamsal">Hamzeh Alsalhi</a> with thanks
to Rohit Sivaprasad), as well as evaluation metrics (by
<a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>).</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code> parameter to <code class="docutils literal notranslate"><span class="pre">metrics.jaccard_similarity_score</span></code>.
By <code class="docutils literal notranslate"><span class="pre">Jatin</span> <span class="pre">Shah</span></code>.</p></li>
<li><p>Add support for multiclass in <code class="docutils literal notranslate"><span class="pre">metrics.hinge_loss</span></code>. Added <code class="docutils literal notranslate"><span class="pre">labels=None</span></code>
as optional parameter. By <code class="docutils literal notranslate"><span class="pre">Saurabh</span> <span class="pre">Jha</span></code>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">sample_weight</span></code> parameter to <code class="docutils literal notranslate"><span class="pre">metrics.hinge_loss</span></code>.
By <code class="docutils literal notranslate"><span class="pre">Saurabh</span> <span class="pre">Jha</span></code>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">multi_class=&quot;multinomial&quot;</span></code> option in
<a class="reference internal" href="../modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression" title="sklearn.linear_model.LogisticRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.LogisticRegression</span></code></a> to implement a Logistic
Regression solver that minimizes the cross-entropy or multinomial loss
instead of the default One-vs-Rest setting. Supports <code class="docutils literal notranslate"><span class="pre">lbfgs</span></code> and
<code class="docutils literal notranslate"><span class="pre">newton-cg</span></code> solvers. By <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a> and <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>. Solver option
<code class="docutils literal notranslate"><span class="pre">newton-cg</span></code> by Simon Wu.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">DictVectorizer</span></code> can now perform <code class="docutils literal notranslate"><span class="pre">fit_transform</span></code> on an iterable in a
single pass, when giving the option <code class="docutils literal notranslate"><span class="pre">sort=False</span></code>. By <a class="reference external" href="https://github.com/dan-blanchard">Dan
Blanchard</a>.</p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">GridSearchCV</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">RandomizedSearchCV</span></code> can now be
configured to work with estimators that may fail and raise errors on
individual folds. This option is controlled by the <code class="docutils literal notranslate"><span class="pre">error_score</span></code>
parameter. This does not affect errors raised on re-fit. By
<a class="reference external" href="https://github.com/romaniukm">Michal Romaniuk</a>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">digits</span></code> parameter to <code class="docutils literal notranslate"><span class="pre">metrics.classification_report</span></code> to allow
report to show different precision of floating point numbers. By
<a class="reference external" href="https://github.com/agileminor">Ian Gilmore</a>.</p></li>
<li><p>Add a quantile prediction strategy to the <a class="reference internal" href="../modules/generated/sklearn.dummy.DummyRegressor.html#sklearn.dummy.DummyRegressor" title="sklearn.dummy.DummyRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">dummy.DummyRegressor</span></code></a>.
By <a class="reference external" href="https://github.com/staple">Aaron Staple</a>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">handle_unknown</span></code> option to <a class="reference internal" href="../modules/generated/sklearn.preprocessing.OneHotEncoder.html#sklearn.preprocessing.OneHotEncoder" title="sklearn.preprocessing.OneHotEncoder"><code class="xref py py-class docutils literal notranslate"><span class="pre">preprocessing.OneHotEncoder</span></code></a> to
handle unknown categorical features more gracefully during transform.
By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Added support for sparse input data to decision trees and their ensembles.
By <a class="reference external" href="http://www.eecs.berkeley.edu/~fareshed">Fares Hedyati</a> and <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Optimized <a class="reference internal" href="../modules/generated/sklearn.cluster.AffinityPropagation.html#sklearn.cluster.AffinityPropagation" title="sklearn.cluster.AffinityPropagation"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.AffinityPropagation</span></code></a> by reducing the number of
memory allocations of large temporary data-structures. By <a class="reference external" href="https://www.ocf.berkeley.edu/~antonyl/">Antony Lee</a>.</p></li>
<li><p>Parellization of the computation of feature importances in random forest.
By <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a> and <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">n_iter_</span></code> attribute to estimators that accept a <code class="docutils literal notranslate"><span class="pre">max_iter</span></code> attribute
in their constructor. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Added decision function for <a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsOneClassifier.html#sklearn.multiclass.OneVsOneClassifier" title="sklearn.multiclass.OneVsOneClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OneVsOneClassifier</span></code></a>
By <a class="reference external" href="https://github.com/raghavrv">Raghav RV</a> and <a class="reference external" href="https://github.com/kyleabeauchamp">Kyle Beauchamp</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.neighbors.kneighbors_graph.html#sklearn.neighbors.kneighbors_graph" title="sklearn.neighbors.kneighbors_graph"><code class="xref py py-func docutils literal notranslate"><span class="pre">neighbors.kneighbors_graph</span></code></a> and <code class="xref py py-func docutils literal notranslate"><span class="pre">radius_neighbors_graph</span></code>
support non-Euclidean metrics. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a></p></li>
<li><p>Parameter <code class="docutils literal notranslate"><span class="pre">connectivity</span></code> in <a class="reference internal" href="../modules/generated/sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering" title="sklearn.cluster.AgglomerativeClustering"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.AgglomerativeClustering</span></code></a>
and family now accept callables that return a connectivity matrix.
By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Sparse support for <code class="xref py py-func docutils literal notranslate"><span class="pre">paired_distances</span></code>. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.cluster.DBSCAN.html#sklearn.cluster.DBSCAN" title="sklearn.cluster.DBSCAN"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.DBSCAN</span></code></a> now supports sparse input and sample weights and
has been optimized: the inner loop has been rewritten in Cython and
radius neighbors queries are now computed in batch. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>
and <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>Add <code class="docutils literal notranslate"><span class="pre">class_weight</span></code> parameter to automatically weight samples by class
frequency for <a class="reference internal" href="../modules/generated/sklearn.ensemble.RandomForestClassifier.html#sklearn.ensemble.RandomForestClassifier" title="sklearn.ensemble.RandomForestClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.RandomForestClassifier</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier" title="sklearn.tree.DecisionTreeClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">tree.DecisionTreeClassifier</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.ensemble.ExtraTreesClassifier.html#sklearn.ensemble.ExtraTreesClassifier" title="sklearn.ensemble.ExtraTreesClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">ensemble.ExtraTreesClassifier</span></code></a>
and <a class="reference internal" href="../modules/generated/sklearn.tree.ExtraTreeClassifier.html#sklearn.tree.ExtraTreeClassifier" title="sklearn.tree.ExtraTreeClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">tree.ExtraTreeClassifier</span></code></a>. By <a class="reference external" href="http://trevorstephens.com/">Trevor Stephens</a>.</p></li>
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.RandomizedSearchCV</span></code> now does sampling without
replacement if all parameters are given as lists. By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Parallelized calculation of <code class="xref py py-func docutils literal notranslate"><span class="pre">pairwise_distances</span></code> is now supported
for scipy metrics and custom callables. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>Allow the fitting and scoring of all clustering algorithms in
<a class="reference internal" href="../modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline" title="sklearn.pipeline.Pipeline"><code class="xref py py-class docutils literal notranslate"><span class="pre">pipeline.Pipeline</span></code></a>. By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>More robust seeding and improved error messages in <a class="reference internal" href="../modules/generated/sklearn.cluster.MeanShift.html#sklearn.cluster.MeanShift" title="sklearn.cluster.MeanShift"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.MeanShift</span></code></a>
by <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Make the stopping criterion for <code class="xref py py-class docutils literal notranslate"><span class="pre">mixture.GMM</span></code>,
<code class="xref py py-class docutils literal notranslate"><span class="pre">mixture.DPGMM</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">mixture.VBGMM</span></code> less dependent on the
number of samples by thresholding the average log-likelihood change
instead of its sum over all samples. By <a class="reference external" href="https://herve.niderb.fr/">Hervé Bredin</a>.</p></li>
<li><p>The outcome of <a class="reference internal" href="../modules/generated/sklearn.manifold.spectral_embedding.html#sklearn.manifold.spectral_embedding" title="sklearn.manifold.spectral_embedding"><code class="xref py py-func docutils literal notranslate"><span class="pre">manifold.spectral_embedding</span></code></a> was made deterministic
by flipping the sign of eigenvectors. By <a class="reference external" href="https://github.com/Hasil-Sharma">Hasil Sharma</a>.</p></li>
<li><p>Significant performance and memory usage improvements in
<a class="reference internal" href="../modules/generated/sklearn.preprocessing.PolynomialFeatures.html#sklearn.preprocessing.PolynomialFeatures" title="sklearn.preprocessing.PolynomialFeatures"><code class="xref py py-class docutils literal notranslate"><span class="pre">preprocessing.PolynomialFeatures</span></code></a>. By <a class="reference external" href="http://www.ericmart.in">Eric Martin</a>.</p></li>
<li><p>Numerical stability improvements for <a class="reference internal" href="../modules/generated/sklearn.preprocessing.StandardScaler.html#sklearn.preprocessing.StandardScaler" title="sklearn.preprocessing.StandardScaler"><code class="xref py py-class docutils literal notranslate"><span class="pre">preprocessing.StandardScaler</span></code></a>
and <a class="reference internal" href="../modules/generated/sklearn.preprocessing.scale.html#sklearn.preprocessing.scale" title="sklearn.preprocessing.scale"><code class="xref py py-func docutils literal notranslate"><span class="pre">preprocessing.scale</span></code></a>. By <a class="reference external" href="https://ngoix.github.io/">Nicolas Goix</a></p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC" title="sklearn.svm.SVC"><code class="xref py py-class docutils literal notranslate"><span class="pre">svm.SVC</span></code></a> fitted on sparse input now implements <code class="docutils literal notranslate"><span class="pre">decision_function</span></code>.
By <a class="reference external" href="https://www.zinkov.com/">Rob Zinkov</a> and <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">cross_validation.train_test_split</span></code> now preserves the input type,
instead of converting to numpy arrays.</p></li>
</ul>
</div>
<div class="section" id="documentation-improvements">
<h3>Documentation improvements<a class="headerlink" href="#documentation-improvements" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>Added example of using <code class="xref py py-class docutils literal notranslate"><span class="pre">FeatureUnion</span></code> for heterogeneous input.
By <a class="reference external" href="https://github.com/mrterry">Matt Terry</a></p></li>
<li><p>Documentation on scorers was improved, to highlight the handling of loss
functions. By <a class="reference external" href="https://github.com/MattpSoftware">Matt Pico</a>.</p></li>
<li><p>A discrepancy between liblinear output and scikit-learn’s wrappers
is now noted. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Improved documentation generation: examples referring to a class or
function are now shown in a gallery on the class/function’s API reference
page. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>More explicit documentation of sample generators and of data
transformation. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.neighbors.BallTree.html#sklearn.neighbors.BallTree" title="sklearn.neighbors.BallTree"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.neighbors.BallTree</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.neighbors.KDTree.html#sklearn.neighbors.KDTree" title="sklearn.neighbors.KDTree"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.neighbors.KDTree</span></code></a>
used to point to empty pages stating that they are aliases of BinaryTree.
This has been fixed to show the correct class docs. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Added silhouette plots for analysis of KMeans clustering using
<a class="reference internal" href="../modules/generated/sklearn.metrics.silhouette_samples.html#sklearn.metrics.silhouette_samples" title="sklearn.metrics.silhouette_samples"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.silhouette_samples</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.metrics.silhouette_score.html#sklearn.metrics.silhouette_score" title="sklearn.metrics.silhouette_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.silhouette_score</span></code></a>.
See <a class="reference internal" href="../auto_examples/cluster/plot_kmeans_silhouette_analysis.html#sphx-glr-auto-examples-cluster-plot-kmeans-silhouette-analysis-py"><span class="std std-ref">Selecting the number of clusters with silhouette analysis on KMeans clustering</span></a></p></li>
</ul>
</div>
<div class="section" id="id2">
<h3>Bug fixes<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>Metaestimators now support ducktyping for the presence of <code class="docutils literal notranslate"><span class="pre">decision_function</span></code>,
<code class="docutils literal notranslate"><span class="pre">predict_proba</span></code> and other methods. This fixes behavior of
<code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.GridSearchCV</span></code>,
<code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.RandomizedSearchCV</span></code>, <a class="reference internal" href="../modules/generated/sklearn.pipeline.Pipeline.html#sklearn.pipeline.Pipeline" title="sklearn.pipeline.Pipeline"><code class="xref py py-class docutils literal notranslate"><span class="pre">pipeline.Pipeline</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.feature_selection.RFE.html#sklearn.feature_selection.RFE" title="sklearn.feature_selection.RFE"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.RFE</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.feature_selection.RFECV.html#sklearn.feature_selection.RFECV" title="sklearn.feature_selection.RFECV"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.RFECV</span></code></a> when nested.
By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a></p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">scoring</span></code> attribute of grid-search and cross-validation methods is no longer
ignored when a <code class="xref py py-class docutils literal notranslate"><span class="pre">grid_search.GridSearchCV</span></code> is given as a base estimator or
the base estimator doesn’t have predict.</p></li>
<li><p>The function <code class="xref py py-func docutils literal notranslate"><span class="pre">hierarchical.ward_tree</span></code> now returns the children in
the same order for both the structured and unstructured versions. By
<a class="reference external" href="http://www.mvdoc.me">Matteo Visconti di Oleggio Castello</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.feature_selection.RFECV.html#sklearn.feature_selection.RFECV" title="sklearn.feature_selection.RFECV"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.RFECV</span></code></a> now correctly handles cases when
<code class="docutils literal notranslate"><span class="pre">step</span></code> is not equal to 1. By <a class="reference external" href="https://github.com/nmayorov">Nikolay Mayorov</a></p></li>
<li><p>The <a class="reference internal" href="../modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA" title="sklearn.decomposition.PCA"><code class="xref py py-class docutils literal notranslate"><span class="pre">decomposition.PCA</span></code></a> now undoes whitening in its
<code class="docutils literal notranslate"><span class="pre">inverse_transform</span></code>. Also, its <code class="docutils literal notranslate"><span class="pre">components_</span></code> now always have unit
length. By <a class="reference external" href="https://github.com/eickenberg">Michael Eickenberg</a>.</p></li>
<li><p>Fix incomplete download of the dataset when
<code class="xref py py-func docutils literal notranslate"><span class="pre">datasets.download_20newsgroups</span></code> is called. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Various fixes to the Gaussian processes subpackage by Vincent Dubourg
and Jan Hendrik Metzen.</p></li>
<li><p>Calling <code class="docutils literal notranslate"><span class="pre">partial_fit</span></code> with <code class="docutils literal notranslate"><span class="pre">class_weight=='auto'</span></code> throws an
appropriate error message and suggests a work around.
By <a class="reference external" href="https://github.com/dsullivan7">Danny Sullivan</a>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.kernel_approximation.RBFSampler.html#sklearn.kernel_approximation.RBFSampler" title="sklearn.kernel_approximation.RBFSampler"><code class="xref py py-class docutils literal notranslate"><span class="pre">RBFSampler</span></code></a> with <code class="docutils literal notranslate"><span class="pre">gamma=g</span></code>
formerly approximated <a class="reference internal" href="../modules/generated/sklearn.metrics.pairwise.rbf_kernel.html#sklearn.metrics.pairwise.rbf_kernel" title="sklearn.metrics.pairwise.rbf_kernel"><code class="xref py py-func docutils literal notranslate"><span class="pre">rbf_kernel</span></code></a>
with <code class="docutils literal notranslate"><span class="pre">gamma=g/2.</span></code>; the definition of <code class="docutils literal notranslate"><span class="pre">gamma</span></code> is now consistent,
which may substantially change your results if you use a fixed value.
(If you cross-validated over <code class="docutils literal notranslate"><span class="pre">gamma</span></code>, it probably doesn’t matter
too much.) By <a class="reference external" href="https://github.com/dougalsutherland">Dougal Sutherland</a>.</p></li>
<li><p>Pipeline object delegate the <code class="docutils literal notranslate"><span class="pre">classes_</span></code> attribute to the underlying
estimator. It allows, for instance, to make bagging of a pipeline object.
By <a class="reference external" href="http://www.ajoly.org">Arnaud Joly</a></p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.neighbors.NearestCentroid.html#sklearn.neighbors.NearestCentroid" title="sklearn.neighbors.NearestCentroid"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.NearestCentroid</span></code></a> now uses the median as the centroid
when metric is set to <code class="docutils literal notranslate"><span class="pre">manhattan</span></code>. It was using the mean before.
By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a></p></li>
<li><p>Fix numerical stability issues in <a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier" title="sklearn.linear_model.SGDClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDClassifier</span></code></a>
and <a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDRegressor.html#sklearn.linear_model.SGDRegressor" title="sklearn.linear_model.SGDRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDRegressor</span></code></a> by clipping large gradients and
ensuring that weight decay rescaling is always positive (for large
l2 regularization and large learning rate values).
By <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a></p></li>
<li><p>When <code class="docutils literal notranslate"><span class="pre">compute_full_tree</span></code> is set to “auto”, the full tree is
built when n_clusters is high and is early stopped when n_clusters is
low, while the behavior should be vice-versa in
<a class="reference internal" href="../modules/generated/sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering" title="sklearn.cluster.AgglomerativeClustering"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.AgglomerativeClustering</span></code></a> (and friends).
This has been fixed By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a></p></li>
<li><p>Fix lazy centering of data in <a class="reference internal" href="../modules/generated/sklearn.linear_model.enet_path.html#sklearn.linear_model.enet_path" title="sklearn.linear_model.enet_path"><code class="xref py py-func docutils literal notranslate"><span class="pre">linear_model.enet_path</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.lasso_path.html#sklearn.linear_model.lasso_path" title="sklearn.linear_model.lasso_path"><code class="xref py py-func docutils literal notranslate"><span class="pre">linear_model.lasso_path</span></code></a>. It was centered around one. It has
been changed to be centered around the origin. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a></p></li>
<li><p>Fix handling of precomputed affinity matrices in
<a class="reference internal" href="../modules/generated/sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering" title="sklearn.cluster.AgglomerativeClustering"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.AgglomerativeClustering</span></code></a> when using connectivity
constraints. By <a class="reference external" href="https://github.com/cathydeng">Cathy Deng</a></p></li>
<li><p>Correct <code class="docutils literal notranslate"><span class="pre">partial_fit</span></code> handling of <code class="docutils literal notranslate"><span class="pre">class_prior</span></code> for
<a class="reference internal" href="../modules/generated/sklearn.naive_bayes.MultinomialNB.html#sklearn.naive_bayes.MultinomialNB" title="sklearn.naive_bayes.MultinomialNB"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.naive_bayes.MultinomialNB</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.naive_bayes.BernoulliNB.html#sklearn.naive_bayes.BernoulliNB" title="sklearn.naive_bayes.BernoulliNB"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.naive_bayes.BernoulliNB</span></code></a>. By <a class="reference external" href="http://trevorstephens.com/">Trevor Stephens</a>.</p></li>
<li><p>Fixed a crash in <a class="reference internal" href="../modules/generated/sklearn.metrics.precision_recall_fscore_support.html#sklearn.metrics.precision_recall_fscore_support" title="sklearn.metrics.precision_recall_fscore_support"><code class="xref py py-func docutils literal notranslate"><span class="pre">metrics.precision_recall_fscore_support</span></code></a>
when using unsorted <code class="docutils literal notranslate"><span class="pre">labels</span></code> in the multi-label setting.
By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Avoid skipping the first nearest neighbor in the methods <code class="docutils literal notranslate"><span class="pre">radius_neighbors</span></code>,
<code class="docutils literal notranslate"><span class="pre">kneighbors</span></code>, <code class="docutils literal notranslate"><span class="pre">kneighbors_graph</span></code> and <code class="docutils literal notranslate"><span class="pre">radius_neighbors_graph</span></code> in
<a class="reference internal" href="../modules/generated/sklearn.neighbors.NearestNeighbors.html#sklearn.neighbors.NearestNeighbors" title="sklearn.neighbors.NearestNeighbors"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.neighbors.NearestNeighbors</span></code></a> and family, when the query
data is not the same as fit data. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Fix log-density calculation in the <code class="xref py py-class docutils literal notranslate"><span class="pre">mixture.GMM</span></code> with
tied covariance. By <a class="reference external" href="http://www.dawsonresearch.com">Will Dawson</a></p></li>
<li><p>Fixed a scaling error in <a class="reference internal" href="../modules/generated/sklearn.feature_selection.SelectFdr.html#sklearn.feature_selection.SelectFdr" title="sklearn.feature_selection.SelectFdr"><code class="xref py py-class docutils literal notranslate"><span class="pre">feature_selection.SelectFdr</span></code></a>
where a factor <code class="docutils literal notranslate"><span class="pre">n_features</span></code> was missing. By <a class="reference external" href="https://tullo.ch/">Andrew Tulloch</a></p></li>
<li><p>Fix zero division in <a class="reference internal" href="../modules/generated/sklearn.neighbors.KNeighborsRegressor.html#sklearn.neighbors.KNeighborsRegressor" title="sklearn.neighbors.KNeighborsRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.KNeighborsRegressor</span></code></a> and related
classes when using distance weighting and having identical data points.
By <a class="reference external" href="https://github.com/Garrett-R">Garret-R</a>.</p></li>
<li><p>Fixed round off errors with non positive-definite covariance matrices
in GMM. By <a class="reference external" href="https://github.com/AlexisMignon">Alexis Mignon</a>.</p></li>
<li><p>Fixed a error in the computation of conditional probabilities in
<a class="reference internal" href="../modules/generated/sklearn.naive_bayes.BernoulliNB.html#sklearn.naive_bayes.BernoulliNB" title="sklearn.naive_bayes.BernoulliNB"><code class="xref py py-class docutils literal notranslate"><span class="pre">naive_bayes.BernoulliNB</span></code></a>. By <a class="reference external" href="https://dirichlet.net/">Hanna Wallach</a>.</p></li>
<li><p>Make the method <code class="docutils literal notranslate"><span class="pre">radius_neighbors</span></code> of
<a class="reference internal" href="../modules/generated/sklearn.neighbors.NearestNeighbors.html#sklearn.neighbors.NearestNeighbors" title="sklearn.neighbors.NearestNeighbors"><code class="xref py py-class docutils literal notranslate"><span class="pre">neighbors.NearestNeighbors</span></code></a> return the samples lying on the
boundary for <code class="docutils literal notranslate"><span class="pre">algorithm='brute'</span></code>. By <a class="reference external" href="http://seowyanyi.org">Yan Yi</a>.</p></li>
<li><p>Flip sign of <code class="docutils literal notranslate"><span class="pre">dual_coef_</span></code> of <a class="reference internal" href="../modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC" title="sklearn.svm.SVC"><code class="xref py py-class docutils literal notranslate"><span class="pre">svm.SVC</span></code></a>
to make it consistent with the documentation and
<code class="docutils literal notranslate"><span class="pre">decision_function</span></code>. By Artem Sobolev.</p></li>
<li><p>Fixed handling of ties in <a class="reference internal" href="../modules/generated/sklearn.isotonic.IsotonicRegression.html#sklearn.isotonic.IsotonicRegression" title="sklearn.isotonic.IsotonicRegression"><code class="xref py py-class docutils literal notranslate"><span class="pre">isotonic.IsotonicRegression</span></code></a>.
We now use the weighted average of targets (secondary method). By
<a class="reference external" href="https://amueller.github.io/">Andreas Müller</a> and <a class="reference external" href="http://bommaritollc.com/">Michael Bommarito</a>.</p></li>
</ul>
</div>
</div>
<div class="section" id="api-changes-summary">
<h2>API changes summary<a class="headerlink" href="#api-changes-summary" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li><p><code class="xref py py-class docutils literal notranslate"><span class="pre">GridSearchCV</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">cross_val_score</span></code> and other
meta-estimators don’t convert pandas DataFrames into arrays any more,
allowing DataFrame specific operations in custom estimators.</p></li>
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">multiclass.fit_ovr</span></code>, <code class="xref py py-func docutils literal notranslate"><span class="pre">multiclass.predict_ovr</span></code>,
<code class="xref py py-func docutils literal notranslate"><span class="pre">predict_proba_ovr</span></code>,
<code class="xref py py-func docutils literal notranslate"><span class="pre">multiclass.fit_ovo</span></code>, <code class="xref py py-func docutils literal notranslate"><span class="pre">multiclass.predict_ovo</span></code>,
<code class="xref py py-func docutils literal notranslate"><span class="pre">multiclass.fit_ecoc</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">multiclass.predict_ecoc</span></code>
are deprecated. Use the underlying estimators instead.</p></li>
<li><p>Nearest neighbors estimators used to take arbitrary keyword arguments
and pass these to their distance metric. This will no longer be supported
in scikit-learn 0.18; use the <code class="docutils literal notranslate"><span class="pre">metric_params</span></code> argument instead.</p></li>
<li><dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">n_jobs</span></code> parameter of the fit method shifted to the constructor of the</dt><dd><p>LinearRegression class.</p>
</dd>
</dl>
</li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">predict_proba</span></code> method of <a class="reference internal" href="../modules/generated/sklearn.multiclass.OneVsRestClassifier.html#sklearn.multiclass.OneVsRestClassifier" title="sklearn.multiclass.OneVsRestClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiclass.OneVsRestClassifier</span></code></a>
now returns two probabilities per sample in the multiclass case; this
is consistent with other estimators and with the method’s documentation,
but previous versions accidentally returned only the positive
probability. Fixed by Will Lamond and <a class="reference external" href="https://github.com/larsmans">Lars Buitinck</a>.</p></li>
<li><p>Change default value of precompute in <code class="xref py py-class docutils literal notranslate"><span class="pre">ElasticNet</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">Lasso</span></code>
to False. Setting precompute to “auto” was found to be slower when
n_samples &gt; n_features since the computation of the Gram matrix is
computationally expensive and outweighs the benefit of fitting the Gram
for just one alpha.
<code class="docutils literal notranslate"><span class="pre">precompute=&quot;auto&quot;</span></code> is now deprecated and will be removed in 0.18
By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Expose <code class="docutils literal notranslate"><span class="pre">positive</span></code> option in <a class="reference internal" href="../modules/generated/sklearn.linear_model.enet_path.html#sklearn.linear_model.enet_path" title="sklearn.linear_model.enet_path"><code class="xref py py-func docutils literal notranslate"><span class="pre">linear_model.enet_path</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.enet_path.html#sklearn.linear_model.enet_path" title="sklearn.linear_model.enet_path"><code class="xref py py-func docutils literal notranslate"><span class="pre">linear_model.enet_path</span></code></a> which constrains coefficients to be
positive. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Users should now supply an explicit <code class="docutils literal notranslate"><span class="pre">average</span></code> parameter to
<a class="reference internal" href="../modules/generated/sklearn.metrics.f1_score.html#sklearn.metrics.f1_score" title="sklearn.metrics.f1_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">sklearn.metrics.f1_score</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.metrics.fbeta_score.html#sklearn.metrics.fbeta_score" title="sklearn.metrics.fbeta_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">sklearn.metrics.fbeta_score</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.metrics.recall_score.html#sklearn.metrics.recall_score" title="sklearn.metrics.recall_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">sklearn.metrics.recall_score</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.metrics.precision_score.html#sklearn.metrics.precision_score" title="sklearn.metrics.precision_score"><code class="xref py py-func docutils literal notranslate"><span class="pre">sklearn.metrics.precision_score</span></code></a> when performing multiclass
or multilabel (i.e. not binary) classification. By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">scoring</span></code> parameter for cross validation now accepts <code class="docutils literal notranslate"><span class="pre">'f1_micro'</span></code>,
<code class="docutils literal notranslate"><span class="pre">'f1_macro'</span></code> or <code class="docutils literal notranslate"><span class="pre">'f1_weighted'</span></code>. <code class="docutils literal notranslate"><span class="pre">'f1'</span></code> is now for binary classification
only. Similar changes apply to <code class="docutils literal notranslate"><span class="pre">'precision'</span></code> and <code class="docutils literal notranslate"><span class="pre">'recall'</span></code>.
By <a class="reference external" href="https://joelnothman.com/">Joel Nothman</a>.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">fit_intercept</span></code>, <code class="docutils literal notranslate"><span class="pre">normalize</span></code> and <code class="docutils literal notranslate"><span class="pre">return_models</span></code> parameters in
<a class="reference internal" href="../modules/generated/sklearn.linear_model.enet_path.html#sklearn.linear_model.enet_path" title="sklearn.linear_model.enet_path"><code class="xref py py-func docutils literal notranslate"><span class="pre">linear_model.enet_path</span></code></a> and <a class="reference internal" href="../modules/generated/sklearn.linear_model.lasso_path.html#sklearn.linear_model.lasso_path" title="sklearn.linear_model.lasso_path"><code class="xref py py-func docutils literal notranslate"><span class="pre">linear_model.lasso_path</span></code></a> have
been removed. They were deprecated since 0.14</p></li>
<li><p>From now onwards, all estimators will uniformly raise <code class="docutils literal notranslate"><span class="pre">NotFittedError</span></code>
(<code class="xref py py-class docutils literal notranslate"><span class="pre">utils.validation.NotFittedError</span></code>), when any of the <code class="docutils literal notranslate"><span class="pre">predict</span></code>
like methods are called before the model is fit. By <a class="reference external" href="https://github.com/raghavrv">Raghav RV</a>.</p></li>
<li><p>Input data validation was refactored for more consistent input
validation. The <code class="docutils literal notranslate"><span class="pre">check_arrays</span></code> function was replaced by <code class="docutils literal notranslate"><span class="pre">check_array</span></code>
and <code class="docutils literal notranslate"><span class="pre">check_X_y</span></code>. By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a>.</p></li>
<li><p>Allow <code class="docutils literal notranslate"><span class="pre">X=None</span></code> in the methods <code class="docutils literal notranslate"><span class="pre">radius_neighbors</span></code>, <code class="docutils literal notranslate"><span class="pre">kneighbors</span></code>,
<code class="docutils literal notranslate"><span class="pre">kneighbors_graph</span></code> and <code class="docutils literal notranslate"><span class="pre">radius_neighbors_graph</span></code> in
<a class="reference internal" href="../modules/generated/sklearn.neighbors.NearestNeighbors.html#sklearn.neighbors.NearestNeighbors" title="sklearn.neighbors.NearestNeighbors"><code class="xref py py-class docutils literal notranslate"><span class="pre">sklearn.neighbors.NearestNeighbors</span></code></a> and family. If set to None,
then for every sample this avoids setting the sample itself as the
first nearest neighbor. By <a class="reference external" href="https://manojbits.wordpress.com">Manoj Kumar</a>.</p></li>
<li><p>Add parameter <code class="docutils literal notranslate"><span class="pre">include_self</span></code> in <a class="reference internal" href="../modules/generated/sklearn.neighbors.kneighbors_graph.html#sklearn.neighbors.kneighbors_graph" title="sklearn.neighbors.kneighbors_graph"><code class="xref py py-func docutils literal notranslate"><span class="pre">neighbors.kneighbors_graph</span></code></a>
and <a class="reference internal" href="../modules/generated/sklearn.neighbors.radius_neighbors_graph.html#sklearn.neighbors.radius_neighbors_graph" title="sklearn.neighbors.radius_neighbors_graph"><code class="xref py py-func docutils literal notranslate"><span class="pre">neighbors.radius_neighbors_graph</span></code></a> which has to be explicitly
set by the user. If set to True, then the sample itself is considered
as the first nearest neighbor.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">thresh</span></code> parameter is deprecated in favor of new <code class="docutils literal notranslate"><span class="pre">tol</span></code> parameter in
<code class="xref py py-class docutils literal notranslate"><span class="pre">GMM</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">DPGMM</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">VBGMM</span></code>. See <code class="docutils literal notranslate"><span class="pre">Enhancements</span></code>
section for details. By <a class="reference external" href="https://herve.niderb.fr/">Hervé Bredin</a>.</p></li>
<li><p>Estimators will treat input with dtype object as numeric when possible.
By <a class="reference external" href="https://amueller.github.io/">Andreas Müller</a></p></li>
<li><p>Estimators now raise <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> consistently when fitted on empty
data (less than 1 sample or less than 1 feature for 2D input).
By <a class="reference external" href="https://twitter.com/ogrisel">Olivier Grisel</a>.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">shuffle</span></code> option of <a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier" title="sklearn.linear_model.SGDClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDClassifier</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.SGDRegressor.html#sklearn.linear_model.SGDRegressor" title="sklearn.linear_model.SGDRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.SGDRegressor</span></code></a>, <a class="reference internal" href="../modules/generated/sklearn.linear_model.Perceptron.html#sklearn.linear_model.Perceptron" title="sklearn.linear_model.Perceptron"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.Perceptron</span></code></a>,
<a class="reference internal" href="../modules/generated/sklearn.linear_model.PassiveAggressiveClassifier.html#sklearn.linear_model.PassiveAggressiveClassifier" title="sklearn.linear_model.PassiveAggressiveClassifier"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.PassiveAggressiveClassifier</span></code></a> and
<a class="reference internal" href="../modules/generated/sklearn.linear_model.PassiveAggressiveRegressor.html#sklearn.linear_model.PassiveAggressiveRegressor" title="sklearn.linear_model.PassiveAggressiveRegressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">linear_model.PassiveAggressiveRegressor</span></code></a> now defaults to <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p></li>
<li><p><a class="reference internal" href="../modules/generated/sklearn.cluster.DBSCAN.html#sklearn.cluster.DBSCAN" title="sklearn.cluster.DBSCAN"><code class="xref py py-class docutils literal notranslate"><span class="pre">cluster.DBSCAN</span></code></a> now uses a deterministic initialization. The
<code class="docutils literal notranslate"><span class="pre">random_state</span></code> parameter is deprecated. By <a class="reference external" href="https://github.com/kno10">Erich Schubert</a>.</p></li>
</ul>
</div>
<div class="section" id="code-contributors">
<h2>Code Contributors<a class="headerlink" href="#code-contributors" title="Permalink to this headline">¶</a></h2>
<p>A. Flaxman, Aaron Schumacher, Aaron Staple, abhishek thakur, Akshay, akshayah3,
Aldrian Obaja, Alexander Fabisch, Alexandre Gramfort, Alexis Mignon, Anders
Aagaard, Andreas Mueller, Andreas van Cranenburgh, Andrew Tulloch, Andrew
Walker, Antony Lee, Arnaud Joly, banilo, Barmaley.exe, Ben Davies, Benedikt
Koehler, bhsu, Boris Feld, Borja Ayerdi, Boyuan Deng, Brent Pedersen, Brian
Wignall, Brooke Osborn, Calvin Giles, Cathy Deng, Celeo, cgohlke, chebee7i,
Christian Stade-Schuldt, Christof Angermueller, Chyi-Kwei Yau, CJ Carey,
Clemens Brunner, Daiki Aminaka, Dan Blanchard, danfrankj, Danny Sullivan, David
Fletcher, Dmitrijs Milajevs, Dougal J. Sutherland, Erich Schubert, Fabian
Pedregosa, Florian Wilhelm, floydsoft, Félix-Antoine Fortin, Gael Varoquaux,
Garrett-R, Gilles Louppe, gpassino, gwulfs, Hampus Bengtsson, Hamzeh Alsalhi,
Hanna Wallach, Harry Mavroforakis, Hasil Sharma, Helder, Herve Bredin,
Hsiang-Fu Yu, Hugues SALAMIN, Ian Gilmore, Ilambharathi Kanniah, Imran Haque,
isms, Jake VanderPlas, Jan Dlabal, Jan Hendrik Metzen, Jatin Shah, Javier López
Peña, jdcaballero, Jean Kossaifi, Jeff Hammerbacher, Joel Nothman, Jonathan
Helmus, Joseph, Kaicheng Zhang, Kevin Markham, Kyle Beauchamp, Kyle Kastner,
Lagacherie Matthieu, Lars Buitinck, Laurent Direr, leepei, Loic Esteve, Luis
Pedro Coelho, Lukas Michelbacher, maheshakya, Manoj Kumar, Manuel, Mario
Michael Krell, Martin, Martin Billinger, Martin Ku, Mateusz Susik, Mathieu
Blondel, Matt Pico, Matt Terry, Matteo Visconti dOC, Matti Lyra, Max Linke,
Mehdi Cherti, Michael Bommarito, Michael Eickenberg, Michal Romaniuk, MLG,
mr.Shu, Nelle Varoquaux, Nicola Montecchio, Nicolas, Nikolay Mayorov, Noel
Dawe, Okal Billy, Olivier Grisel, Óscar Nájera, Paolo Puggioni, Peter
Prettenhofer, Pratap Vardhan, pvnguyen, queqichao, Rafael Carrascosa, Raghav R
V, Rahiel Kasim, Randall Mason, Rob Zinkov, Robert Bradshaw, Saket Choudhary,
Sam Nicholls, Samuel Charron, Saurabh Jha, sethdandridge, sinhrks, snuderl,
Stefan Otte, Stefan van der Walt, Steve Tjoa, swu, Sylvain Zimmer, tejesh95,
terrycojones, Thomas Delteil, Thomas Unterthiner, Tomas Kazmar, trevorstephens,
tttthomasssss, Tzu-Ming Kuo, ugurcaliskan, ugurthemaster, Vinayak Mehta,
Vincent Dubourg, Vjacheslav Murashkin, Vlad Niculae, wadawson, Wei Xue, Will
Lamond, Wu Jiang, x0l, Xinfan Meng, Yan Yi, Yu-Chin</p>
</div>
</div>


      </div>
    <div class="container">
      <footer class="sk-content-footer">
            &copy; 2007 - 2019, scikit-learn developers (BSD License).
          <a href="../_sources/whats_new/v0.16.rst.txt" rel="nofollow">Show this page source</a>
      </footer>
    </div>
  </div>
</div>
<script src="../_static/js/vendor/bootstrap.min.js"></script>

<script>
    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
    ga('create', 'UA-22606712-2', 'auto');
    ga('set', 'anonymizeIp', true);
    ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>


<script>
$(document).ready(function() {
    /* Add a [>>>] button on the top-right corner of code samples to hide
     * the >>> and ... prompts and the output and thus make the code
     * copyable. */
    var div = $('.highlight-python .highlight,' +
                '.highlight-python3 .highlight,' +
                '.highlight-pycon .highlight,' +
		'.highlight-default .highlight')
    var pre = div.find('pre');

    // get the styles from the current theme
    pre.parent().parent().css('position', 'relative');
    var hide_text = 'Hide prompts and outputs';
    var show_text = 'Show prompts and outputs';

    // create and add the button to all the code blocks that contain >>>
    div.each(function(index) {
        var jthis = $(this);
        if (jthis.find('.gp').length > 0) {
            var button = $('<span class="copybutton">&gt;&gt;&gt;</span>');
            button.attr('title', hide_text);
            button.data('hidden', 'false');
            jthis.prepend(button);
        }
        // tracebacks (.gt) contain bare text elements that need to be
        // wrapped in a span to work with .nextUntil() (see later)
        jthis.find('pre:has(.gt)').contents().filter(function() {
            return ((this.nodeType == 3) && (this.data.trim().length > 0));
        }).wrap('<span>');
    });

    // define the behavior of the button when it's clicked
    $('.copybutton').click(function(e){
        e.preventDefault();
        var button = $(this);
        if (button.data('hidden') === 'false') {
            // hide the code output
            button.parent().find('.go, .gp, .gt').hide();
            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden');
            button.css('text-decoration', 'line-through');
            button.attr('title', show_text);
            button.data('hidden', 'true');
        } else {
            // show the code output
            button.parent().find('.go, .gp, .gt').show();
            button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible');
            button.css('text-decoration', 'none');
            button.attr('title', hide_text);
            button.data('hidden', 'false');
        }
    });

	/*** Add permalink buttons next to glossary terms ***/
	$('dl.glossary > dt[id]').append(function() {
		return ('<a class="headerlink" href="#' +
			    this.getAttribute('id') +
			    '" title="Permalink to this term">¶</a>');
	});
  /*** Hide navbar when scrolling down ***/
  // Returns true when headerlink target matches hash in url
  (function() {
    hashTargetOnTop = function() {
        var hash = window.location.hash;
        if ( hash.length < 2 ) { return false; }

        var target = document.getElementById( hash.slice(1) );
        if ( target === null ) { return false; }

        var top = target.getBoundingClientRect().top;
        return (top < 2) && (top > -2);
    };

    // Hide navbar on load if hash target is on top
    var navBar = document.getElementById("navbar");
    var navBarToggler = document.getElementById("sk-navbar-toggler");
    var navBarHeightHidden = "-" + navBar.getBoundingClientRect().height + "px";
    var $window = $(window);

    hideNavBar = function() {
        navBar.style.top = navBarHeightHidden;
    };

    showNavBar = function() {
        navBar.style.top = "0";
    }

    if (hashTargetOnTop()) {
        hideNavBar()
    }

    var prevScrollpos = window.pageYOffset;
    hideOnScroll = function(lastScrollTop) {
        if (($window.width() < 768) && (navBarToggler.getAttribute("aria-expanded") === 'true')) {
            return;
        }
        if (lastScrollTop > 2 && (prevScrollpos <= lastScrollTop) || hashTargetOnTop()){
            hideNavBar()
        } else {
            showNavBar()
        }
        prevScrollpos = lastScrollTop;
    };

    /*** high preformance scroll event listener***/
    var raf = window.requestAnimationFrame ||
        window.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame ||
        window.msRequestAnimationFrame ||
        window.oRequestAnimationFrame;
    var lastScrollTop = $window.scrollTop();

    if (raf) {
        loop();
    }

    function loop() {
        var scrollTop = $window.scrollTop();
        if (lastScrollTop === scrollTop) {
            raf(loop);
            return;
        } else {
            lastScrollTop = scrollTop;
            hideOnScroll(lastScrollTop);
            raf(loop);
        }
    }
  })();
});

</script>
    
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
    
</body>
</html>